const ipcMainUrl = import.meta.env.VITE_IPCMAIN_URL

export default {
  // 显示浏览器视图
  async showBrowserView() {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'show-browser-view'
    })
  },

  // 隐藏浏览器视图
  async hideBrowserView() {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'hide-browser-view'
    })
  },

  // 最大化浏览器视图
  async maxBrowserView() {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'max-browser-view'
    })
  },

  // 最小化浏览器视图
  async minBrowserView() {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'min-browser-view'
    })
  },

  // 获取页签
  async getBrowserTabs() {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'get-browser-tabs'
    })
  },

  // 创建新页签
  async createTab(url?: string) {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'create-browser-tab',
      data: { url }
    })
  },
  
  // 关闭页签
  async closeTab(tabId: string) {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'close-browser-tab',
      data: tabId
    })
  },
  
  // 切换页签
  async switchTab(tabId: string) {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'switch-browser-tab',
      data: { tabId }
    })
  },
  
  // 导航到URL
  async navigateTo(tabId: string, url: string) {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'navigate-browser-tab',
      data: { tabId, url }
    })
  },
  
  // 页面前进
  async goForward(tabId: string) {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'browser-tab-forward',
      data: { tabId }
    })
  },
  
  // 页面后退
  async goBack(tabId: string) {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'browser-tab-back',
      data: { tabId }
    })
  },

  // 获取导航状态
  async getNavState(tabId: string) {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'browser-nav-state',
      data: { tabId }
    })
  },
  
  // 刷新页面
  async reload(tabId: string) {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'browser-tab-reload',
      data: { tabId }
    })
  },

  // 创建设置页签
  async createSettingTab() {
    return await window.electron.ipcRenderer.invoke(ipcMainUrl, {
      name: 'create-setting-tab'
    })
  }
}
